import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;


public class Producto {
	private int IDproducto;
	private String SKU;
	private String nombre;
	private String descripcion;
	private String precio;
	private String mensajeBean;
	
	public Producto(){
		
	}
	
	public Producto(int id,String sku,String Nombre,String descr, int precio){
		this.IDproducto = id;
		this.SKU = sku;
		this.nombre = Nombre;
		this.descripcion = descr;
		this.precio = String.valueOf(precio); 
	}
	
	/**
	 * @return the iDproducto
	 */
	public int getIDproducto() {
		return IDproducto;
	}
	/**
	 * @param iDproducto the iDproducto to set
	 */
	public void setIDproducto(int iDproducto) {
		IDproducto = iDproducto;
	}
	/**
	 * @return the sKU
	 */
	public String getSKU() {
		return SKU;
	}
	/**
	 * @param sKU the sKU to set
	 */
	public void setSKU(String sKU) {
		SKU = sKU;
	}
	/**
	 * @return the nombre
	 */
	public String getNombre() {
		return nombre;
	}
	/**
	 * @param nombre the nombre to set
	 */
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	/**
	 * @return the descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}
	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	/**
	 * @return the precio
	 */
	public String getPrecio() {
		return precio;
	}
	/**
	 * @param precio the precio to set
	 */
	public void setPrecio(String precio) {
		this.precio = precio;
	}
	/**
	 * @return the mensajeBean
	 */
	public String getMensajeBean() {
		return mensajeBean;
	}
	/**
	 * @param mensajeBean the mensajeBean to set
	 */
	public void setMensajeBean(String mensajeBean) {
		this.mensajeBean = mensajeBean;
	}
	
	
	public Result getResultProductos(){
		try {
			//Un objeto ResultSet, almacena los datos de resultados de una consulta
			ResultSet tabla = AccesoDatosBean.executeQuery("select * from producto");
			return (ResultSupport.toResult(tabla));
			}
			catch(SQLException e){ System.out.println(e); }
			catch(Exception e){ System.out.println(e); }
			return null;
		}
	
	
	
	public String modificarProducto(){
		
		try {
			AccesoDatosBean.executeUpdate("update producto set nombre='" + nombre + "'," 
													     + "SKU='" + SKU  + "'," 
													     + "descripcion='" + descripcion + "',"
													     + "precio='" + precio + "'"
													     + " where IDproducto = " + IDproducto);
			mensajeBean = "Producto modificado exitosamente";
			return "modificado";
			}
			catch(SQLException e){ System.out.println(e); }
			catch(Exception e){ System.out.println(e); }
			
			return "error";
	}

	
public String eliminarProducto(){
		
		try {
			AccesoDatosBean.executeUpdate("delete from producto where IDproducto = " + IDproducto);
			mensajeBean = "Producto eliminado exitosamente";
			return "eliminado";
			}
			catch(SQLException e){ System.out.println(e); }
			catch(Exception e){ System.out.println(e); }
			
			return "error";
	}
	
public String nuevoProducto(){
	
	try {
		AccesoDatosBean.executeUpdate("insert into Producto set nombre='" + nombre + "'," 
													     + "SKU='" + SKU  + "'," 
													     + "descripcion='" + descripcion + "',"
													     + "precio='" + precio + "',"
													     + "IDproducto='" + IDproducto +"'");
		mensajeBean = "Producto creado exitosamente";
		return "creado";
		}
		catch(SQLException e){ System.out.println(e); }
		catch(Exception e){ System.out.println(e); }
		
		return "creado";
}

public String get_new_key(){
	try {
		//Un objeto ResultSet, almacena los datos de resultados de una consulta
		ResultSet result = AccesoDatosBean.executeQuery("select (IDproducto + 1) as new_key from producto order by IDproducto desc limit 1 ");
		result.next();
		IDproducto = result.getInt("new_key");
		result.close();
		}
		catch(SQLException e){ System.out.println(e); }
		catch(Exception e){ System.out.println(e); }
	
	return "nuevo";
}
	
	
}
